
//Engine headers
#include "odn_util_Vector3D.h"
#include "odn_util_RGBAColor.h"

//Standard library headers
#include <vector>

using ouden::scene::ODN_Scene;
using ouden::input::ODN_InputReceiver;
using ouden::utility::Vector3D;
using ouden::utility::RGBAColor;

class ODN_Panel : public ODN_SceneElement, public ODN_InputReceiver, public ODN_EventReceiver 
{
	
public:
	
	ODN_Panel()				{}
	virtual ~ODN_Panel()	{}
	
	//Let this panel know it has a new child panel
	ODN_GUI_Panel* addChild(ODN_GUI_Panel* p)			{ children.push_back(p); return children.back(); }

	virtual void onInputCommand(int Name)
	{
		
		
		
	}
	
	//Property access functions
	void setParent(ODN_GUI_Panel* Parent)		{ parent=Parent; if (parent) parent->AddChild(this); }
	void Show()									{ visible = true; }
	void Hide()									{ visible = false; }
	void Move(Vector3D Pos)						{ pos=Pos; }
	void Resize(Vector3D Size)					{ size=Size; }
	
private
	
	//Parent panel 
	ODN_Panel* parent;
	
	//Array of pointers to children 
	std::vector<ODN_GUI_Panel*> children;
	
	bool 		visible; 
	Vector3D 	pos;		//Position of the bottom left corner 
	Vector3D 	size;		//Dimensions of the panel 
	RGBAColor 	color;
	
	
};
